#pragma once

class IState{
public:
	IState(EngineInterfacePtr engine):
	  m_engine(engine),m_context(engine->getRenderSystemPtr()->getRenderContext()){}

	virtual void onAdded() = 0;
	virtual void onRemoved() = 0;
	virtual void onUpdated() = 0;
protected:
	EngineInterfacePtr	m_engine;
	RenderContextPtr	m_context;
};

typedef boost::shared_ptr<IState> IStatePtr;